The transfer of time-sensitive information over computer networks, such as the transfer of voice information over the Internet, is rapidly gaining acceptance. The information is carried by discrete units of data, referred to as packets or cells, and carried from a sending device to a receiving device. Depending on the particular computer network, one or more protocols may be used to carry the information, e.g., Frame Relay, Internet Protocol (IP) and Asynchronous Transfer Mode (ATM). In contrast to the public telephone network, for example, which is a circuit switching technology designed to carry voice transmissions, Frame Relay and IP networks insert information into variable-sized frames or packets. ATM networks chop information into small cells, which facilitate fast switching of the data through the network.
In the public telephone system, a path from the sender to the receiver is dedicated to transmission of the data for the duration of a call, which is sent as a continuous data stream over a dedicated circuit. In other words, the line is monopolized by a call until the call is terminated, even when the caller is put on hold and during periods of silence. Although this system guarantees reliable and immediate transmission of voice, it often results in very inefficient use of bandwidth. Consequently, the transfer of certain information, such as a voice, over computer networks can be an attractive means for reducing long-term costs associated with existing systems. For example, by implementing Voice over IP (VoIP) and transporting the voice information over the Internet, expensive circuit-switched networks can be replaced by a less expensive and more bandwidth-efficient solution.
The transmission of information over conventional computer networks often has requirements for reliability of the network infrastructure that are unique compared to other applications. In particular, unlike most data applications that have been used with conventional computer networks, voice and video are very sensitive to time delay, i.e., latency. Good voice and video quality requires recreation of the conversation, with substantially the same tone, inflection, pauses and intonation used by the speakers.
While all applications benefit from the reliability and fault tolerance usually offered by packet or cell-based networks, typical applications are sufficiently robust to survive failure detection and recovery times that may be on the order of many seconds without significant disruption. Due to the shared nature of computer networks, significant time may be required for data transmissions to travel across the network depending on current network conditions. A transmission, for example, can be delayed because of network congestion. Network events, such as a link failure, router failure, network attack, and the like, can result in dropped packets, which detrimentally affect the integrity of voice transmissions. For voice transmissions, these delays between packets result in unnatural speech and interfere with the conversation. Dropped packets result in clipped speech and poor voice quality. Even short delays, e.g., delays of a second or less, may cause the voice caller to hang up, lead to overlap in speech between the callers, or cause the speaker to hear an echo of his or her voice. Video and other time-sensitive data transmissions have similar problems. Fax and modem transmissions are even more sensitive to the quality of the transmission and are less tolerant of dropped packets than voice.
As a result, a common technique for transmitting time-sensitive information is to reserve a backup network path in the event a network error or other event negatively impacts communication over an original path. Moreover, conventional computer networks are often designed to reduce a “failover time” to reroute traffic from the original network path to the backup path, thereby reducing any impact of the network event on the transmission of the time-sensitive information. In many cases, conventional networks are designed to reduce the failover time to a sub-second interval, and possibly 50 ms or less. As a result, significant resources, e.g., cost, labor, computing resources, and the like, may be utilized in an attempt to reduce the failover time.